/**
 * @param {number[]} nums
 * @return {number}
 * 
 * 
 * 输入：[1,2,3,1]
 * 输出：4
 * 解释：偷窃 1 号房屋 (金额 = 1) ，然后偷窃 3 号房屋 (金额 = 3)。
 * 偷窃到的最高金额 = 1 + 3 = 4 。
 * 
 * 输入：[2,7,9,3,1]
 * 输出：12
 * 解释：偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9)，接着偷窃 5 号房屋 (金额 = 1)。
 * 偷窃到的最高金额 = 2 + 9 + 1 = 12 。
 */
var rob = function (nums) {
    let n = nums.length;
    if (n === 1) return nums[0]
    const dp = [nums[0]]
    if (n >= 2) {
        dp[1] = Math.max(dp[0], nums[1])
    }
    for (let i = 2; i < n; i++) {
        dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1])
    }
    return dp[n - 1]
};

console.log(rob([2,7,9,3,1]))